#ifndef TIMER_H
#define TIMER_H

class Timer
{
public:
	Timer();

	void update();
	void reset();

	float getSeconds() const;
	float getTotalSeconds() const;
	float getMilliseconds() const;
	float getTotalMilliseconds() const;
	float getMicroseconds() const;
	float getTotalMicroseconds() const;

private:
	typedef double timerType;

	// Time in miliseconds.
	timerType m_previousTicks;
	timerType m_totalTicks;
	timerType m_ticks;

	static void initTime();
	static const double ms_frequency;
};

#endif
